package com.doit.spark.day01

import org.apache.log4j.{Level, Logger}
import org.apache.spark.rdd.RDD
import org.apache.spark.{SparkConf, SparkContext}

/**
 * @DATE 2022/1/2/10:36
 * @Author MDK
 * @Version 2021.2.2
 * 数据-->spark计算框架读取数据--->spark的开发API计算数据--->spark的开发API输出数据
 * */
object C01Demo01 {
  //关闭日志
  Logger.getLogger("org").setLevel(Level.ERROR)
  def main(args: Array[String]): Unit = {
    //需要spark的核心环境  API,spark配置对象  用户配置用户信息
    val conf = new SparkConf()
    //设置运行模式  local本地模式 [1]代表一个核(一个线程)
    conf.setAppName("demo01").setMaster("local[1]")
    val context = new SparkContext(conf)
    //读取数据  RDD相当于迭代器或者集合
    val data: RDD[String] = context.textFile("data/word.txt")
    //处理数据   获取文本中的所有单词  获取单次出现的次数
    //    data.map(_.toUpperCase)
    val data2 = data.flatMap(_.split("\\s+"))
    val data3 = data.flatMap(_.split("\\s+")).map((_,1))
    val data4 = data.flatMap(_.split("\\s+")).map((_,1)).groupBy(_._1).mapValues(_.toList.length)
    //降序
    val data5 = data.flatMap(_.split("\\s+")).map((_,1)).groupBy(_._1).mapValues(_.toList.length).sortBy(-_._2)

    //输出
    data5.foreach(println)
  }
}
